#



# #记忆化搜索
# self.dp = [-1] * (max_n + 1)  # 初始化为-1，表示未计算

# # 基础情况
# if n <= 1:
#     return 1

# # 记忆化检查：如果已经计算过，直接返回，也就是看有没有缓存。
# if self.dp[n] != -1:
#     return self.dp[n]

# # 递归计算并存储结果
# self.dp[n] = self.d(n - 1) + self.d(n - 2)   #状态转移方程

# return self.dp[n]



#笔记：
#动态规划可以简化为树塔逐步形成最小子问题的过程，而且往往是倒着求解？？
#而且动态规划的核心其实还是节省计算量。把之前的那种2**n的问题变成n^2的问题/

print("hello")
n=10
num=2**n
print(num)
